04 GPIO实验
up的视频讲解沿着输入、判断、输出的路径,依次完成按键点灯、传感器点灯和蜂鸣器控制。
例程代码: 📥按键点灯实验代码
1 🔽 按键点灯实验
1.1 实验连接
按键接到 PA0,LED 控制信号接到 PA1。先按图连接电源与地,再连接信号。

1.2 实验原理
按键松开时,下拉让输入保持低电平;按下后,按键把信号接到 3.3 V,输入变为高电平。
程序用 HAL_GPIO_ReadPin() 读取这个状态,再用 HAL_GPIO_WritePin() 控制 LED。这样就把“外部动作 → 输入寄存器 → 程序判断 → 输出电平”串了起来。

本实验使用轮询:主循环每次运行到判断语句时,读取一次当前状态。
1.3 CubeMX配置
PA0 GPIO_Input Pull-down,按下接3.3 V


PA1 GPIO_Output Push Pull,初始Low,Low速度即可

1.4 实验代码
全局
main()
while(1)里面
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == 1)//按键按下
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,1);//黄灯亮
}
else
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,0);//黄灯灭
}
2 🌻 光照/温度 点灯实验
2.1 实验连接
把光敏或热敏模块的数字输出 DO 接入输入引脚,其余输出控制延续上一实验。

2.2 实验原理
传感器先把光照或温度变化转换成电阻变化,再通过分压得到模拟电压 AO。比较器把这个电压与电位器设定的阈值比较,输出数字状态 DO。

在课程光敏电路中,光照增强使光敏电阻减小,AO 电压随之下降。越过比较阈值时,DO 状态改变,模块指示灯也会变化。

旋转电位器改变的是比较阈值。按照本模块的设计,顺时针减小阈值、逆时针增大阈值。主控读取的是 DO 状态,还没有测量具体的光照或温度;测量会在 ADC 课程展开。
2.3 CubeMX配置
我们可以复用按键点灯的配置
2.4 实验代码
我们可以复用按键点灯的代码
3 📢 按键启动蜂鸣器实验原理
3.1 实验连接
输入仍使用按键,把输出控制线改接到蜂鸣器模块。

3.2 实验原理
蜂鸣器由三极管驱动,GPIO 负责提供控制信号。这样把“控制电平”与“负载工作电流”分开。

三极管有基极、集电极和发射极。课程先把它理解为受控制的开关:适当的基极驱动使负载通路导通,撤去驱动后停止。这里的约 0.7 V 是帮助理解硅三极管结电压的近似值,并不是所有负载都可直接连接 GPIO 的依据。
3.3 CubeMX配置
我们可以复用按键点灯的配置
3.4 实验代码
我们可以复用按键点灯的代码